package com.lwj.designpattern.creativemode.singletonmode;
/*
 1. 创建型
 创建型的主要作用于对象的实例化阶段，将实例化过程解耦，对外提供对象。降低耦合度
 最常用的创建型模式的就是单例模式：
其定义为:确保某一个类只有一个实例，并对外提供一个全局访问方法
其典型的特点为：1. 保证全局只有一个实例 2. 自我实例化 3. 提供全局的访问方法
 构建时主要的方法是：
 数据成员私有化，构造方法私有化，然后堆外提供创建的对象

优点:节约系统资源，提供系统效率
例子： 比如说：对于一个公共的，大家经常使用的的类，每一次使用都会实例化出一个新的对象，
这样，jvm内就会很多这个类的对象， 但是事实上，很多这个类的工作其实只需要一个实例化对象就可以解决，这样一来就
造成了资源的浪费。
使用场景：
当系统中只需要一个实例对象或只允许通过一个方法获取该对象时，就可以使用单例模式
 */
//  主要有两种方式创建：
// 懒汉模式和饿汉模式
//1. 饿汉模式：该模式不会有线程安全的问题
/**
 * 作用：创建实例化对象
 * 原理：在项目一开始运行之时，就将该对象实例化到内存之中
 * 优点：相当于 懒汉模式来说， 实现方式简单，不会有线程安全问题
 *缺点： 因为一开始就会实例化该对象，所以即使没有使用到它，或者在项目一开始不会使用到它，它也会在内存中占用一定的资源
 *
 */
public class SingletonMode {
    private  static   SingletonMode  singletonMode= new SingletonMode();

    private SingletonMode() {
    }
    public   static  SingletonMode getSingletonMode(){
        return  singletonMode;
    }
}
